#pragma once
#include "FaceDetection.h"
#include <string>
#include <opencv2/objdetect/objdetect.hpp>
#include <opencv2/gpu/gpu.hpp>
#include <opencv2/imgproc/imgproc.hpp>

class GPUFaceDetection :
	public Filter
{
public:
	enum Inputs { INPUT_RGB_MAP = 0};
	enum Outputs { OUTPUT_FACE_RECT = 0};

	void Process();

	GPUFaceDetection(void);
	virtual ~GPUFaceDetection(void);

private:
	static const std::string faceCascadeName;
	cv::gpu::CascadeClassifier_GPU gpuFaceCascade;

	static const cv::Size defMinSize;
	cv::Size minSize;
	cv::Rect ROI;
};

